Contemporary web browsers allow a user to visit different websites and different pages within a website or web application. The user can navigate back and forward between the pages in the order in which they were visited, using the browser's back and forward buttons or similar user interface, which may include special mouse buttons. Microsoft Corporation's Internet Explorer is one such browser that allows a back and forth navigation between different web pages; to this end, Internet Explorer maintains a travel log (TravelLog) comprising a navigation stack that maintains a list of recently visited sites.
In addition to viewing HTML-based web pages, Internet Explorer also has the ability to host different types of content inline, e.g. Microsoft® Office documents, .pdf documents, and so forth. In general, to host another document, a document object, or DocObj, is used as the container that contains the content, and the object communicates with the browser through defined interfaces. For Internet Explorer, COM (component object model) technology is used, and provides the container specification.
With respect to navigation between pages in the same hosted document, however, the user experience is limited and not consistent with HTML page navigation. For example, when navigating via document bookmarks or among pages (slides) in a presentation (e.g., Microsoft® PowerPoint) document, when a user actuates the browser's Back button, the user expects to go back to a previous page in the document. However, instead of navigating to the previous page in the same document, the browser navigates back to the previous web page. As a result, document servers often provide their own interfaces (e.g., in a separate toolbar of icons) for going back and forth between the pages in the document.
While this internal toolbar solution works to an extent, it does not overcome the inconsistent and unexpected results that occur when users (often out of habit) use the browser navigation commands when the browser is hosting a document object. What is needed is a seamless way to navigate to pages within hosted document objects, including via a browser's Back and Forward commands, to match users' expectations and provide users with a consistent navigation experience.